Method for detecting upstream congestion in an ATM commutator with a switching system architecture and input memorization

ABSTRACT

A process for detecting upstream congestion within an ATM switch. The switch includes several junctions linked together by a cross-connector. In each input junction, the number of incoming cells bound for a same specified output port of a junction are counted. Results of the count supplied by the input junctions are transferred to the output port. Results of the counts in the output junction are aggregated and a congestion is declared in the output port if the aggregate number of cells is greater than a specified threshold value.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a process for detecting upstreamcongestion within a distributed-architecture switch such as those usedin packet-switched data transmission networks, known by the abbreviationATM standing for “asynchronous transfer mode”.

2. Discussion of the Background

It applies in particular to the implementation within ATM networks ofthe category of service known by the abbreviation ABR standing for“available bit rate”. This service allows a user to use the passbandavailable over the path of a previously established connection withoutobliging him/her to make a static reservation of resources whenestablishing the connection. In return for this flexibility, the twoends of the connection must adapt their bit rate to the passbandavailable. For this purpose, particular ATM cells, known as RM cells,where RM stands for “resource management”, make it possible to informthe ends of a connection about the availability of the resources in thenetwork. These cells, generated and processed in real time by the endequipment and also by the ATM switches, comprise fields intended toconvey bit rate information, and in particular the ER bit raterecommended to the source by the network, ER being the abbreviation for“explicit cell rate”.

Switches which have this capabiity calculate the ER bit rate and writeit to the RM cells. The various known algorithms for calculating the ERbit rate make it possible to share out the resources of a given outputport among the various connections which pass through this port. Thesealgorithms generally operate differently depending on whether the switchis in a state of congestion or not, that is to say whether the stream ofcells bound for a relevant port is larger than the output bit ratepermitted on this port or not.

Congestion is in principle excluded for categories of services whichrequire a static reservation of the resources which they use. Moreover,the ATM cells corresponding to these categories of services aregenerally switched straightaway, without waiting. This is not the casefor services which do not necessitate any reservation of resources, suchas ABR, hence buffer memories are generally provided so as to absorb theexcess cell rate, by waiting for the sources to reduce their rate inresponse to the network indications conveyed in the RM cells.

Under these conditions, the momentary congestion of an ouput port of aswitch is manifested mechanically as an accumulation of cells bound forthis port in the buffer memories. In the case of adistributed-architecture switch composed of several input junctionscoupled together by a cross-connector, a momentary congestion of anoutput port is manifested as an accumulation in the input junctions ofthe cells bound for this port. This is referred to as upstreamcongestion. This distributing within the input junctions of the cellsbound for a specified output port makes it difficult to aggregate thevarious partial items of information relating to the cells waiting ineach junction, so as to allow bookkeeping operations on them.

SUMMARY OF THE INVENTION

The purpose of the invention is to solve this problem by defining theinformation to be managed in each input junction and by defining a meansfor integrating the partial items of information.

To this end, the subject of the invention is a process for detectingupstream congestion within a distributed-architecture ATM switchcomposed of several input and output junctions for transmission in anATM cell network, including counting in each input junction the numberof incoming cells and outgoing cells bound for a specified output portof a junction, transferring the results of the counts supplied by theinput junctions to the output port, aggregating the results of thecounts in the output junction, and declaring a congestion in the outputport if the aggregate number of cells is greater than a specifiedthreshold value.

BRIEF DESCRIPTION OF THE DRAWINGS

Other characteristics and advantages of the invention will emerge in thedescription which follows given with regard to the appended drawingswhich represent:

FIG. 1, a simplified representation of an ATM switch used to implementthe invention.

FIGS. 2 to 6, illustrative implementations of the process according tothe invention in the form of flow charts.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The distributed-architecture switch with storage at input which isrepresented in FIG. 1 is composed of several identical modules orjunctions 1 interfacing with one or more high bit rate communicationhighways 2, of the optical fibre or twisted cable pair type for example,each of these interfaces being referred to hereafter as a port. Thejunctions are linked together by a very high bit rate switching deviceor cross-connector 3 structured for example in the manner described inPatent Application FR 2 681 164 filed in the name of the Applicant. Eachjunction possesses sufficient processing capabilities to analyze theincoming ATM cells, despatch them directly to the ad hoc junction if thelatter can process them, or alternatively store them whilst waiting forit to be able to process them. In what follows, the terminology “inputjunction” and output junction is used to specify that a cell entering aswitch encounters firstly an input junction and is then returned to thenetwork by an output junction. This does not imply a classification ofthe junctions, every junction is an input junction for certain cells andan output junction for others. With this type of architecture, amomentary congestion of an output port is manifested as the accumulationin the input junctions of the cells bound for this port. This congestionis detected at each output port by executing a process which runsaccording to the steps referenced from 4 to 7 in the flow chart of FIG.2. According to this process the first step which is referenced 4 inFIG. 2, counts in each input junction the number of cells bound for oneand the same output port. Identification of the output port takes placefor example in the manner described in Patent Application FR 2 681 164by reading from the header of each ATM cell showing up at the input of ajunction, its cluster number V_(P1) and its channel number V_(C1).Counting takes place by incrementing and decrementing a counterdedicated to the relevant output port each time a cell bound for thisoutput port enters the input junction or leaves it. Another countingvariant can also count in each junction each cell per connection. Thissecond variant seems better suited to the cases of point-to-multipointconnections since it can be more difficult in the input junction toupdate in parallel all the counters per port which are relevant to sucha connection.

The second step referenced 5 in FIG. 2 centralizes the informationcollected in the counters of the various junctions in the correspondingoutput junction 2. The transfer takes place by generating specific ATMcells in each relevant input junction, or by using RM cells, certainfields of which are reserved for the switch. The transfers can beperformed in various ways. They can for example be strictly periodic, ortake place only when the information varies significantly, or else witha periodicity equal to that of the RM cells when the latter serve as avehicle for the information.

The purpose of the next step, referenced 6 in FIG. 2, is to aggregatethe information transmitted at the previous step in the output junctions2 so as to compute a measurement of the cell congestion of the inputjunctions. The result of this measurement can be strictly equal to thenumber of cells waiting if the synchronization of the informationcollected is perfect. However, it is sufficient to limit the measurementto a simple sum of the information collected, if the mechanisms forupdating the information are sufficiently frequent and effective.

The measurement can also consist of a simple calculation of a meanperformed with regard to the information collected by a calculation ofan exponential mean for example such as recalled in Appendix 1.

Finally, during the last step referenced 7 in FIG. 2, the measurementobtained in the step referenced 6 is utilized to decide whether or noteach relevant output port is subject to a flow of cells whose bit rateis greater than what is permitted to it by its physical characteristics.This can be achieved by marrying a dynamic criterion, such as asignificant increase in the congestion measurement for example, with astatic criterion such as, for example, the fact that the measurementexceeds a threshold, so as to proclaim that an output port is congestedif one of these two criteria is satisfied.

Three variant implementations of the just-described process according tothe invention are represented in FIGS. 3 to 5 in which the steps akin tothose of FIG. 2 are represented with the same references.

A first variant represented in FIG. 3 uses one counter per output portin each input junction for the execution of the step referenced 4,assuming that each junction 1 comprises just a single output port, anduses RM cells as vehicles in step 5 for the transfer of information tothe output junctions. In this transfer, the value of the counter ofcells bound for the output port of each RM cell is written by the inputjunction to this cell together with its own identifier. In the, stepreferenced 6, the output junction maintains a measurement which is thesum of the information received from each junction, making each junctioncontribute through the most recent item of information which it has sentto it in the manner represented in FIG. 4, through the updating in theoutput junction of a table 8 for storing the information items receivedand which possesses as many inputs as there are input junctions in theswitch. Each input denoted J₁ to J_(n) in FIG. 4 addresses a countingzone which stores the state of a corresponding counter in an inputjunction and which is updated each time that, in the step labelled 5, atransfer of the contents of the counter of the corresponding junction isreceived in the output junction. Under these conditions, each newcontribution of an input junction counter is obtained by subtracting ina calculating device 9, the value of its old count stored in the table 8from the value of its new count and this contribution is added in thecalculating device 9 to the contents of an accumulator register 10 whichaccumulates with its contents each new contribution received from aninput junction. The updating of the table 8 is performed upon thearrival of each new count by way of a register 11. Moreover, a defensemechanism (not represented) warns each junction of the bringing intoservice and taking out of service of any one of the other junctions, sothat these can manage the table 8 and the congestion measurementappropriately. The detection of congestion of the step referenced 7 isperformed by marrying a dynamic criterion with a static criterionpertaining to the above-described congestion measurement. A microprogramwritten in the C language and which makes it possible to execute thesteps referenced 6 and 7 is detailed in Appendix 2.

In the second variant represented in FIG. 5, the step referenced 4implements counters per connection in each input port.

The transfer of the information item contained in a counter bound for anoutput port takes place in the step referenced 5 by using an RM cell asvehicle. The corresponding input junction writes the value of thecounter of cells waiting for the relevant connection to each RM cell.The steps referenced 6 and 7 are similar to those of the first variantwith the difference however of the addressing of the counting zones ofthe table 8 which is performed for each connection. A defense mechanism(not represented) warns each junction of the establishing and of thefreeing of the connections passing therethrough, so that the junctioncan manage the table 8 and the measurement of congestion appropriately.A corresponding microprogram written in the C language is detailed inAppendix 3.

Finally, according to a third variant which is represented in FIG. 6,the process of FIG. 5 can be modified in its third step referenced 6 byperforming the measurement of congestion on each output port of anoutput junction, by calculating the exponential mean of the countinginformation received for each connection passing through the relevantoutput port. According to the very principle of the exponential meandetailed in Appendix 1, the influence of a contribution at a giveninstant on the sum dwindles progressively. In this case, no particulardefense mechanism needs to be provided, since a connection whichdisappears rapidly loses all influence on the measurement owing to thefact that it does not contribute thereto. Also, transporting thecounting information in the RM cells has the advantage of giving moreweight to the high bit rate connections since these send RM cells morefrequently. A corresponding microprogram written in the C language forthe execution of this third step is described in Appendix 4.

APPENDIX 1

The “exponential mean” is nothing other than the result of adiscrete-time first-order linear filtering. If u_(n) denotes the stringof input values and x_(n) the string of states of the filter, the stateequation of the filter can be written:

x _(n+1) =a.x _(n)+(1−a).u _(n)  [1]

where a is a parameter less than 1, close to 1, which defines thehorizon of the filter. The string x_(n) thus represents a sort of moreor less long-term instantaneous mean of the inputs.

In the application envisaged, the input values u_(n) represent numbersof cells. To avoid floating-point calculations and multiplications, thenotable value ⅞ will be used for a and the values u_(n)=4*u_(n) will beaveraged so as to retain sufficient accuracy despite the truncation. Themeasurement of congestion is therefore given by:

X _(n+1)=((X _(n)<<3)−X _(n) +U _(n))>>3  [2]

APPENDIX 2

Persistent Variables

t_word_32 total, old_total

t_word_16 old_counter [<number of junctors in the switch>]

t_boolean state_congestion

Initialization Processing

state_congestion=false

for (j in old_counter) old_counter[j]=0

total=old_total=0

FRM Cell Processing

# retrieval and aggregation of information

total=total+cell.payload.counter−old_counter[cell.payload.origin]old_counter[cell.payload.origin]=cell.payload.counter# calculation of the congestion state

state_congestion=(total>old_total)||(total>50) old_total=total

APPENDIX 3

Persistent Variables

t_word_32 total

t_word_16 old_counter[<number of connections>]

Initialization Processing

for (j in old_counter) old_counter[j]=0

total=0

FRM Cell Processing

# retrieval and aggregation of information

total=total+cell.payload.counter−old_counter[cell.vpi_vci]

old_counter[cell.vpi_vci]=cell.payload.counter

APPENDIX 4

Persistent Variables

t_word_32 total

Initialization Processing

total=0

FRM Cell Processing

# retrieval and aggregation of informationtotal=(total<<3−total+cell.payload.counter<<2)>>3

What is claimed is:
 1. Process for detecting upstream congestion withina distributed-architecture ATM switch composed of several input andoutput junctions for transmission in an ATM cell network, comprisingcounting in each input junction the number of incoming cells bound for asame specified output port of a junction, transferring the results ofthe counts supplied by the input junctions to the outport port,aggregating the results of the counts in the output junction, anddeclaring a congestion in the output port if the aggregate number ofcells is greater than a specified threshold value.
 2. Process accordingto claim 1, wherein the transfer of the count results is performed usingspecific ATM cells.
 3. Process according to claim 1, wherein thetransfer of the count results is performed using RM cells.
 4. Processaccording to claim 1, comprising, in respect of aggregating the countresults, storing the count results in a table of the output junction,subtracting from the new count result supplied by an input junction theprevious count result which is stored in the table of the outputjunction, and accumulating in an accumulator the results of thesubtractions obtained.
 5. Process according to claim 1, comprising, inrespect of determining a congestion on an output port, calculating theexponential mean of the count results received for each connectionpassing through the output port.
 6. Process according to claim 2,comprising, in respect of aggregating the count results, storing thecount results in a table of the output junction subtracting from the newcount result supplied by an input junction the previous count resultwhich is stored in the table of the output junction and accumulating inan accumulator the results of the subtractions obtained.
 7. Processaccording to claim 3, comprising, in respect of aggregating the countresults, storing the count results in a table of the output junctionsubtracting from the new count result supplied by an input junction theprevious count result which is stored in the table of the outputjunction and accumulating in an accumulator the results of thesubtractions obtained.
 8. Process according to claim 2, comprising, inrespect of determining a congestion on an output port, calculating theexponential mean of the count results received for each connectionpassing through the output port.
 9. Process according to claim 3,comprising, in respect of determining a congestion on an output port,calculating the exponential mean of the count results received for eachconnection passing through the output port.
 10. A process for detectingupstream congestion within a distributed-architecture ATM switchincluding a plurality of input and output junctions for transmission inan ATM cell network, comprising the steps of: counting in each inputjunction a number of incoming cells bound for a same specified outputport of an output junction; transferring results of the counting stepsupplied by the input junctions to the output junctions; and declaring acongestion of the specified output port in the output junction bycomparing the results of the counting by the input junctions to aspecified threshold value.
 11. A process according to claim 10, whereinthe step of declaring a congestion comprises a step for aggregatingresults of the counting in the output junction and comparing theaggregating results to said specified threshold value.
 12. A processaccording to claim 10, wherein the step of transferring the resultscomprises inserting in a cell results of the counting.
 13. A processaccording to claim 12, wherein the step of transferring the resultscomprises using specific ATM cells.
 14. A process according to claim 12,wherein the step of transferring the results comprises using RM cells.15. A process according to claim 10, wherein the step of declaring acongestion comprises the steps of aggregating results of the counting bystoring count results in a table of the output junction, subtractingfrom a new count result supplied by an input junction a previous countresult stored in the table of the output junction, and accumulating inan accumulator results of the subtractions obtained.
 16. A processaccording to claim 11, wherein the step of aggregating results comprisesthe step of storing count results in a table of the output junction,subtracting from a new count result supplied by an input junction aprevious count result stored in the table of the output junction, andaccumulating in an accumulator results of the subtractions obtained. 17.A process according to claim 12, wherein the step of declaring acongestion comprises the steps of aggregating results of the counting bystoring count results in a table of the output junction, subtractingfrom a new count result supplied by an input junction a previous countresult stored in the table of the output junction, and accumulating inan accumulator results of the subtractions obtained.
 18. A processaccording to claim 13, wherein the step of declaring a congestioncomprises the steps of aggregating results of the counting by storingcount results in a table of the output junction, subtracting from a newcount result supplied by an input junction a previous count resultstored in the table of the output junction, and accumulating in anaccumulator results of the subtractions obtained.
 19. A processaccording to claim 14, wherein the step of declaring a congestioncomprises the steps of aggregating results of the counting by storingcount results in a table of the output junction, subtracting from a newcount result supplied by an input junction a previous count resultstored in the table of the output junction, and accumulating in anaccumulator results of the subtractions obtained.
 20. A processaccording to claim 11, wherein the step of declaring a congestioncalculates an exponential mean of the count results received for eachconnection passing through the output port.
 21. A process according toclaim 12, wherein the step of declaring a congestion calculates anexponential mean of the count results received for each connectionpassing through the output port.
 22. A process according to claim 13,wherein the step of declaring a congestion calculates an exponentialmean of the count results received for each connection passing throughthe output port.
 23. A process according to claim 14, wherein the stepof declaring a congestion calculates an exponential mean of the countresults received for each connection passing through the output port.24. A device for detecting upstream congestion within adistributed-architecture ATM switch including a plurality of input andoutput junctions for transmission in an ATM cell network, comprising: acounter configured to count in each input junction a number of incomingcells bound for a same specified output port of an output junction;means for transferring the counted number from said counter to saidoutput port; and a device configured to declare a congestion of thespecified output port in relation to a specified threshold value.
 25. Adevice according to claim 24, wherein the device configured to declare acongestion comprises a device configured to aggregate results of thecounting, and means for comparing the results of the counting to aspecified threshold value.
 26. A device according to claim 24, whereinsaid means for transferring comprising means for inserting in a cell thecounted number produced by the counter and means to extract the countednumber from the cell.
 27. A device according to claim 26, wherein thecell is a specific ATM cell.
 28. A device according to claim 26, whereinthe cell is a RM cell.
 29. A device according to claim 24, wherein thedevice configured to declare a congestion comprises a device configuredto aggregate results of the counting and a table configured to store thecounted number, a device configured to subtract from a new count resultsupplied by an input junction a previous count result stored in thetable of the output junction, and an accumulator configured toaccumulate results of the subtractions obtained.
 30. A device accordingto claim 25, wherein the device configured to declare a congestioncomprises a table configured to store the counted number, a deviceconfigured to subtract from a new count result supplied by an inputjunction a previous count result stored in the table of the outputjunction, and an accumulator configured to accumulate results of thesubtractions obtained.
 31. A device according to claim 26, wherein thedevice configured to declare a congestion comprises a table configuredto store the counted number, a device configured to subtract from a newcount result supplied by an input junction a previous count resultstored in the table of the output junction, and an accumulatorconfigured to accumulate results of the subtractions obtained.
 32. Adevice according to claim 27, wherein the device configured to declare acongestion comprises a table configured to store the counted number, adevice configured to subtract from a new count result supplied by aninput junction a previous count result stored in the table of the outputjunction, and an accumulator configured to accumulate results of thesubtractions obtained.
 33. A device according to claim 28, wherein thedevice configured to declare a congestion comprises a table configuredto store the counted number, a device configured to subtract from a newcount result supplied by an input junction a previous count resultstored in the table of the output junction, and an accumulatorconfigured to accumulate results of the subtractions obtained.
 34. Adevice according to claim 24, wherein the device configured to declare acongestion is configured to calculate an exponential mean of the countednumber received for each connection passing through the output port. 35.A device according to claim 25, wherein the device configured to declarea congestion is configured to calculate an exponential mean of thecounted number received for each connection passing through the outputport.
 36. A device according to claim 26, wherein the device configuredto declare a congestion is configured to calculate an exponential meanof the counted number received for each connection passing through theoutput port.
 37. A device according to claim 27, wherein the deviceconfigured to declare a congestion is configured to calculate anexponential mean of the counted number received for each connectionpassing through the output port.
 38. A device according to claim 28,wherein the device configured to declare a congestion is configured tocalculate an exponential mean of the counted number received for eachconnection passing through the output port.